// Mateusz Sołtysik, Zima 2013
// Technologia Programowania
public class Liczba {
	private int liczba;
	
	public Liczba() {
		liczba = 0;
	}
	
	public Liczba(int liczba) throws IllegalArgumentException {
		if (liczba < 0) {
			throw new IllegalArgumentException("Liczba nie może być ujemna.");
		}
		this.liczba = liczba;
	}
	
	public void setLiczba(int newLiczba) throws IllegalArgumentException {
		if (newLiczba < 0) {
			throw new IllegalArgumentException("Liczba nie może być ujemna.");
		}
		this.liczba = newLiczba;
	}
	
	public int returnLiczba() {
		return liczba;
	}
	
	public String LiczbaAtBase(int base) throws IllegalArgumentException {
		if ((base < 2) || (base > 16)) {
			throw new IllegalArgumentException("Baza wykracza poza zakres [2, 16].");
		}
		String[] charArray = { "0", "1", "2", "3", "4", "5", "6", "7",
							   "8", "9", "A", "B", "C", "D", "E", "F" }; 
		String wynik = "";
		int liczba = this.liczba;
		
		while (liczba > 0) {
			wynik += charArray[liczba%base];
			liczba /= base;
		}
		
		return new StringBuilder(wynik).reverse().toString();
	}
	
	public static void main(String[] args) {
		Liczba l = new Liczba(10);
		System.out.println(l.LiczbaAtBase(16));
	}
}
